package chapter07

/**
  *
  * @author Pop
  * @date 2022/6/30 23:29
  */
object Test14_HighLevelFunction_Map {
  def main(args: Array[String]): Unit = {
    val list1 = List(1,2,4,5,6)

    //过滤
    val list3: List[Int] = list1.filter(_%2==0)

    // 映射 map
    // 把集合中每个数 *2
    val mapList: List[Int] = list1.map(_*2)

    // 扁平化 将多个集合聚合在一起
    val targetList = List(List(1,23,4),List(34,45,6))

    // 聚合，简陋版
    val flatList = targetList(0) ::: targetList(1)
    // 聚合
    val flatten: List[Int] = targetList.flatten

    // 扁平映射
    // 将一组字符串，进行分词并保存成单词的列表
    val strings = List("aa a","bbb ")
    val stringses: List[Array[String]] = strings.map(string => string.split(" "))
      val flatten1: List[String] = stringses.flatten
    // 直接等于上面两部，这是直接将打散的元素聚合
    val stringst: List[String] = strings.flatMap(_.split(" "))


    // 分组 groupby 按偶数分组，方法将会计算出key，相同的key将会落到同一组中
    val intToInts: Map[Int, List[Int]] = list1.groupBy(_%2)

  }
}
